package com.quan.mall.service;

import com.quan.mall.commons.vo.WmsWareSkuVo;
import com.quan.mall.entity.WmsWareSku;
import com.quan.commons.core.utils.PageUtils;
import com.quan.commons.core.biz.support.MyBaseService;

import java.util.List;
import java.util.Map;

/**
 * 仓库-商品库存
 *
 * @author yhaoquan
 * @email yhaoquan@163.com
 * @date 2021-04-07 22:27:21
 */
public interface WmsWareSkuService extends MyBaseService<WmsWareSku> {

    /**
     * 列表查询
     * @param vo
     * @return
     */
    public List<WmsWareSkuVo> queryList(PageUtils pageUtils, WmsWareSkuVo vo) ;

    /**
     * 分页查询
     * @param pageUtils
     * @param vo
     * @return
     */
    public PageUtils queryPage(PageUtils pageUtils, WmsWareSkuVo vo);

    /**
     * 批量设置库存
     * @param ids
     * @param stock
     */
    public void batchStock(List<Long> ids, Integer stock);

    /**
     * 扣减库存
     * @param decrMap
     */
//    void decrCount(Map<Long, Integer> decrMap);

    /**
     * 获取代理商对应的sku库存
     * @param agentId
     * @param skuId
     * @return
     */
    public Integer getAgentSkuStock(Long agentId, Long skuId);

    /**
     * 库存，出库增加
     * @param agentId
     * @param skuId
     * @param stockOutNum
     */
    public void getStockIncrease(Long agentId, Long skuId, Integer stockOutNum);

    /**
     * 会员申请退货，出库递减
     * @param agentId
     * @param skuId
     * @param stockOutNum
     */
    public void getStockDecrease(Long agentId, Long skuId, Integer stockOutNum);

    /**
     * 代理商关联SKU，初始化仓库
     * @param ids
     * @param skuIds
     */
    void refreeSkus(List<Long> ids, List<Long> skuIds);
}

